package A08BigInterger;

import java.math.BigInteger;
import java.util.Random;

public class Test {
    public static void main(String[] args) {
        //biginteger一经生成就无法改变
        Random rand = new Random();
        BigInteger bg = new BigInteger(10, rand);
        System.out.println(bg);
        //获取一个指定的大整数
        BigInteger bg2 = new BigInteger("100000");//此处参数的形式是字符串
        System.out.println(bg2);
        //特定进制的数转化为大整数
        BigInteger bg3=new BigInteger("10000",4);
        System.out.println(bg3);
        //转化优化版   1.大小为long，比起String更小 2.在2的-16到16次方的范围里，创建BigInteger对象时不会重复创建
        BigInteger bg4=BigInteger.valueOf(100);
        BigInteger bg5=BigInteger.valueOf(100);
        BigInteger bg6=bg4.add(bg5);//两个求和时会创建新对象，而不是改变原对象
        System.out.println(bg6);
        //bigInterger通过数组存储【符号位，前三十二位，后32位】，数组的最大长度为int最大值，数组中每个数最大为42亿多，所以bigIntwrger最大为21亿的42亿次方，近乎无穷
    }
}
